Skip to content

[3/N] feat(runway): add merge-conflict-check and merge controllers#251

Closed
kevinlnew wants to merge 6 commits into
runway/vcs-extensionfrom
runway/controllers
Closed

[3/N] feat(runway): add merge-conflict-check and merge controllers#251
kevinlnew wants to merge 6 commits into
runway/vcs-extensionfrom
runway/controllers

Conversation

@kevinlnew

@kevinlnew kevinlnew commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Implement the two queue message controllers for the runway orchestrator.
The check controller consumes Check messages, calls VCS.CheckMergeability,
and publishes CheckResult. The land controller consumes Job messages,
calls VCS.Land, and publishes Result — conflicts are acked, infra errors
are nacked. Both controllers are stateless (no storage dependency).

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

Test Plan

Issues

Stack

  1. [1/N] doc(runway): add workflow RFC for runway domain #248
  2. [2/N] feat(runway): add Merger extension interface, mock, and noop impl #250
  3. @ [3/N] feat(runway): add merge-conflict-check and merge controllers #251
  4. [4/N] feat(runway): add example orchestrator wiring and Makefile targets #252
  5. [5/N] feat(runway): add proto, ping controller, gRPC server, and client #254

kevinlnew and others added 6 commits June 18, 2026 21:31
Runway is a consumer-only landing service that owns VCS operations
(mergeability checking and landing) on behalf of SubmitQueue. This RFC
describes the two independent queue flows (check and land), branch
serialization via partition key, statelessness, and ownership model.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove dangling pipe characters and empty lines inside diagram boxes
that render as strikethroughs in GitHub rich diff. Change connector
characters from cross (┼) to tee (┬) at box edges.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove historical context, implementation rationale, and defensive
justifications. Match the factual tone and structure of the submitqueue
and stovepipe workflow RFCs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update queue names, entity names, and controller names to match the
merge contract that landed in #244: merge-conflict-checker/merger
topic keys, MergeRequest/MergeResult payloads, unified contract
serving both dry-run checks and committing merges.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Two-method VCS interface (CheckMergeability + Land) consuming the
landed MergeRequest/MergeResult contract. Noop impl for local
development; generated mock for controller tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Two consumer controllers, one per operation: merge-conflict-check
(dry-run, all errors nack) and merge (conflicts ack + publish failure
result, infra errors nack). Both consume MergeRequest and publish
MergeResult using the landed entity contract.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@kevinlnew kevinlnew force-pushed the runway/vcs-extension branch from bf2831f to ac42742 Compare June 18, 2026 22:44
@kevinlnew kevinlnew force-pushed the runway/controllers branch from 1595bde to d3f8423 Compare June 18, 2026 22:45
@kevinlnew kevinlnew changed the title [4/N] feat(runway): add check and land controllers [3/N] feat(runway): add merge-conflict-check and merge controllers Jun 18, 2026
@kevinlnew kevinlnew force-pushed the runway/vcs-extension branch from ac42742 to ce022df Compare June 23, 2026 23:24
@kevinlnew

Copy link
Copy Markdown
Contributor Author

Superseded by #265 which landed the runway orchestrator controllers on main.

@kevinlnew kevinlnew closed this Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant